SMACK+Corral: A Modular Verifier - (Competition Contribution)

نویسندگان

  • Arvind Haran
  • Montgomery Carter
  • Michael Emmi
  • Akash Lal
  • Shaz Qadeer
  • Zvonimir Rakamaric
چکیده

SMACK and Corral are two components of a modular toolchain for verifying C programs. Together they exploit state-of-the-art compiler technologies and theorem provers to simplify and dispatch verification conditions. 1 Verification Approach SMACK [3] is a translator from the LLVM compiler’s intermediate representation (IR) into the Boogie intermediate verification language (IVL) [1]. Sourcing LLVM exploits a number of frontends, optimizations, and analyses. Targeting Boogie exploits a canonical platform which simplifies verifier implementations. Corral [2] is a verifier for the Boogie IVL which views programs as control flow over any SMT-encodable expression language. Corral delegates semantic reasoning to SMT solvers, and in minimizing syntactic program assumptions, it is compatible with any theory supported by the underlying solvers. SMACK+Corral leverages multiple theories to encode various C-language features. We can model memory in array theory, non-linear operations with uninterpreted functions, fixed-width words in bitvector theory, and arbitrary-length words in linear arithmetic. Though we make no attempt to generate inductive invariants, we can use any invariant generator as a pre-pass; if proved sound, the resulting invariants are injected into the program as assumptions which help Corral narrow its search. 2 Software Architecture Figure 1 depicts the SMACK+Corral architecture. We leverage the LLVM1 compiler’s Clang C language family frontend to generate LLVM IR, an assembly-like language in single static assignment (SSA) form targeted by frontends for a diverse spectrum of languages (e.g., Java, JavaScript, Haskell, Erlang, Fortran) which is a convenient representation for code optimization. We then exploit LLVM to perform several code optimizations including control-flow graph simplification, constant propagation, and memory-to-register promotion. Collectively these optimizations can substantially simplify the source C program with fewer control locations and memory operations. ? Partially supported by NSF award CCF 1346756 and a Microsoft Research SEIF award. 1 http://llvm.org and http://clang.llvm.org

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Corral: A Whole-Program Analyzer for Boogie

This paper presents Corral, a whole-program analyzer for Boogie programs. Corral looks for a feasible execution of the program that leads to an assertion failure. The execution may span multiple procedures and may iterate loops multiple times. Unlike the Boogie verifier, Corral does not require any user annotations.

متن کامل

SMACK: Decoupling Source Language Details from Verifier Implementations

A major obstacle to putting software verification research into practice is the high cost of developing the infrastructure enabling the application of verification algorithms to actual production code, in all of its complexity. Handling an entire programming language is a huge endeavor that few researchers are willing to undertake; even fewer could invest the effort to implement a verification ...

متن کامل

Modular SMT Proofs for Fast Reflexive Checking Inside Coq

We present a new methodology for exchanging unsatisfiability proofs between an untrusted SMT solver and a sceptical proof assistant with computation capabilities like Coq. We advocate modular SMT proofs that separate boolean reasoning and theory reasoning; and structure the communication between theories using Nelson-Oppen combination scheme. We present the design and implementation of a Coq re...

متن کامل

Efficient Designated Verifier Signature Schemes

This paper proposes a designated verifier signature based on the Schnorr signature scheme. One of the advantages of the new scheme compared with the one proposed by Jakobsson, Sako and Impagliazzo is that not only the designated verifier (Bob) cannot convince a third party (Cindy) that a signature is originated by a given signer (Alice), but also nobody else other than Bob can even check the va...

متن کامل

An Efficient Strong Designated Verifier Signature Scheme

This paper proposes a designated verifier signature scheme based on the Schnorr signature and the Zheng signcryption schemes. One of the advantages of the new scheme compared with all previously proposed schemes is that it achieves the “strong designated verifier” property without encrypting any part of the signatures. This is because the designated verifier’s secret key is involved in the veri...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2015